home *** CD-ROM | disk | FTP | other *** search
/ Turn the Power On! 3 / Turn the Power On! HP Volume III (HP)(1995).ISO / install_these / install_files < prev    next >
Text File  |  1995-10-03  |  4KB  |  174 lines

  1. #!/bin/ksh
  2.  
  3. ##################################################################
  4. ####    Install Runtime Audio and Video components            ####
  5. ##################################################################
  6.  
  7. echo ""
  8.  
  9.  
  10. if [[ `uname -r` != ?.09.?? ]]
  11. then
  12.     echo "ERROR:  This script is only appropriate for systems running HP-UX 9.* "
  13.     exit 0
  14. fi
  15.  
  16.  
  17. if [[ `whoami` != root ]]
  18. then
  19.     echo "ERROR:   Must be superuser (root) to execute this script."
  20.     exit 0
  21. fi
  22.  
  23. #
  24. # FUNCTION FOR VERIFYING THAT THE ASERVER IS NOT RUNNING
  25. #
  26. # This function is called with the pid of an Aserver process. If the specified
  27. #  process is still alive after 4 seconds, returns a "1". If the process dies
  28. #  as expected, returns a "0".
  29.  
  30. function wait_for_death
  31. {
  32.     # An Aserver process pid is passed in
  33.     target_pid=$1
  34.     # Loop here, until the process goes away, or for four seconds
  35.     waited=0
  36.     until (( waited > 4 ))
  37.     do 
  38.         # Check to see if it's still there. If so, wait one second and try again.
  39.         ps -p $target_pid > /dev/null
  40.         if [[ $? = "0" ]]
  41.         then
  42.             sleep 1
  43.             ((waited = waited + 1 ))
  44.         else
  45.             return 0
  46.         fi
  47.     done
  48.  
  49.     return 1
  50. }    
  51.  
  52. #
  53. # FUNCTION FOR KILLING THE ASERVER DAEMON
  54. #
  55. # Kill the fisrt Aserver processes, if the Aserver is running.
  56. #  Is the Aserver running? (This also gets the ps-grep string into pid)
  57.  
  58. function killit
  59. {
  60.     pid=$(ps -e | sort | grep $1)
  61.     its_alive=$?
  62.     while [[ $its_alive = "0" ]]
  63.     do
  64.         # Remove any leading spaces from string returned by the ps-grep pipe
  65.         pid=${pid##*( )}
  66.         # and remove everything after the first space
  67.         pid=${pid%% *}
  68.         # Kill the process
  69.         kill $pid
  70.  
  71.         wait_for_death $pid
  72.  
  73.         # If the specified process did not die, kill it harder
  74.         if [[ $? = "1" ]]
  75.         then
  76.             kill -9 $pid
  77.             wait_for_death $pid
  78.  
  79.             # If the process is still alive, give up
  80.             ps -p $pid > /dev/null
  81.             if [[ $? = "0" ]]
  82.             then
  83.                 return 1
  84.             fi
  85.         fi
  86.  
  87.         # Are there any more processes with the same name?
  88.         pid=$(ps -e | sort | grep $1)
  89.         its_alive=$?
  90.     done
  91.  
  92.     return 0
  93. }
  94.  
  95.  
  96. # copy $1 to $2
  97. function copy_file
  98. {
  99.     if [[ ! -d $2 ]] ; then exit ; fi
  100.  
  101.     dest_file=$2/$1
  102.     if [[ -f $dest_file ]]
  103.     then
  104.         echo "$dest_file already exists, not overwritten."
  105.     else
  106.     echo "Copying $1 to $2"
  107.         cp $1 $2
  108.     chown bin:bin    $dest_file
  109.     chmod 0555    $dest_file
  110.     fi
  111. }
  112.  
  113. # Install the required video files
  114. echo "INSTALLING VIDEO FILES"
  115. copy_file libvlVideo.sl        /usr/lib
  116. copy_file libyuv2.sl        /usr/lib
  117.  
  118.  
  119. if [[ ! -d /usr/video/bin ]]
  120. then
  121.     echo "Creating /usr/video/bin"
  122.     mkdir -p            /usr/video/bin
  123.     chmod a+rx    /usr/video    /usr/video/bin
  124. fi
  125.  
  126. copy_file vlServer        /usr/video/bin         
  127. copy_file raReader        /usr/video/bin        
  128.  
  129. # Install the required audio files
  130. echo ""
  131. echo "INSTALLING AUDIO FILES"
  132. if [[ ! -f /usr/audio/bin/asecure ]]
  133. then 
  134.     echo "Your current version of the Audio Server (Aserver) does not"
  135.     echo "support video. This script will load an updated version."
  136.     echo "The new version of Aserver includes a security feature"
  137.     echo "that prevents remote systems from accessing your audio"
  138.     echo "services, unless you grant permission."
  139.     echo "Refer to the 'asecure' manpage for information on enabling"
  140.     echo "remote audio access.\n"
  141.  
  142.  
  143.     # Kill the Aserver daemon
  144.  
  145.     killit Aserver
  146.     if [[ $? = "1" ]]
  147.     then
  148.         echo "WARNING: Could not kill the existing Aserver process"
  149.         echo "         You will need to reboot your system to start the new Aserver"
  150.     fi
  151.     echo "Moving your current version of the Aserver to /usr/audio/bin/Aserver.orig"
  152.     mv /usr/audio/bin/Aserver /usr/audio/bin/Aserver.orig
  153.     echo "Copying new Aserver to /usr/audio/bin"
  154.     cp Aserver          /usr/audio/bin
  155.     chown root:sys    /usr/audio/bin/Aserver
  156.     chmod 4555            /usr/audio/bin/Aserver
  157.  
  158.     copy_file aserver.cat  /usr/lib/nls/C    
  159.     copy_file asecure   /usr/audio/bin
  160.     copy_file asec.cat  /usr/lib/nls/C
  161.     copy_file asecure.1m /usr/man/man1m.Z
  162.  
  163.     if [[ -f /usr/audio/.version_srv ]]
  164.     then
  165.         mv /usr/audio/.version_srv /usr/audio/.version_srv.orig
  166.     fi
  167.     copy_file .version_srv /usr/audio
  168.     echo "Restarting the Aserver"
  169.     /usr/audio/bin/Aserver -f
  170. fi
  171. copy_file AudioCP   /usr/audio/bin    
  172.     
  173. exit 0
  174.